<?php

/*
#
# Author: Sebastian Enger, M.Sc.
# Date: 4/2/2016
# Website: www.OneTIPP.com
# Email: Sebastian.Enger@gmail.com
# Topic: Webschnittstelle -> gibt ankommenden Verarbeitungsclients Aufgaben - und Trainingspakete zum verarbeiten
# Version: 0.1.4 -> Added ForceUPDATE FileHash
#
Achtung: Wenn ein Task abgeholt wurde, muss der status noch auf "1"=assigned gesetzt werden
*/

require_once("/home/www/tech.onetipp.net/library/Config.inc.php");
require_once("/home/www/tech.onetipp.net/library/Functions.inc.php");
 
$actionTask	= $_REQUEST['action'];
$actionID 	= $_REQUEST['aid'];

$func	 	= new Functions();
$config	 	= new Config();

header("Content-Type: text/xml; charset=UTF-8");
header("Cache-Control: no-cache, must-revalidate"); //HTTP 1.1
header("Pragma: no-cache"); //HTTP 1.0
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past

/*
$a = "343b9d452bbbf3aa9f38340f1f22466ecd760a6e64ae98073daf257af5ffabd52b155f85854250d04a0f3f8f6e06d992f2837a35b20f3c0796266fe8334b429e";
echo $func->GetNewTaskContent($a);
exit;
*/
if (!isset($actionTask) || empty($actionTask)){
//	echo "GetIndexPageXML()";
	echo $func->GetIndexPageXML(array(),'IndexPage');
	exit(0);
}

if ($actionTask == 'getTask'){
//	echo "GetNewTaskContent()";
	echo $func->GetNewTaskContent();
	exit(0);
}

/*
if ( $actionTask == 'getTask' && (empty($actionID) || !isset($actionID)) ){
//	echo "GetNewTaskXML()";
	echo $func->GetNewTaskXML();
	exit(0);
}

if ( $actionTask == 'getTask' && (!empty($actionID) || isset($actionID)) ){
//	echo "GetNewTaskContent()";
	echo $func->GetNewTaskContent($actionID);
	exit(0);
}
*/
if ( $actionTask == 'statusTask' ){
//	echo "GetStatusTaskContent()";
	echo $func->GetStatusTaskContent($actionID);
	exit(0);
}

if ($_SERVER['REQUEST_METHOD'] == 'POST'){
	$ua 			= $_SERVER['HTTP_USER_AGENT'];
	$HashActionID 	= $_POST['aid'];// {HASHID}
	$Filename 		= $_POST['aid_filename']; // {HASHID}-{UNIXTIMESTAMP}.tar.bz2
	$FileHash 		= $_POST['aid_filehash']; // MD5_OF({HASHID}-{UNIXTIMESTAMP}.tar.bz2)
	$suchmuster 	= '/(\w)-(\w)\.tar\.(bz2|gz)/i';
	
	// only if given input filename is a match of {HASHID}-{UNIXTIMESTAMP}.tar.bz2 then process
	//if (preg_match($suchmuster, $Filename, $treffer, PREG_OFFSET_CAPTURE, 3)){
		$store_path 	= $config->data_storepath();
		$store_path_aid	= $store_path."/".$HashActionID;
		$store_file		= $store_path."/".$HashActionID."/".$Filename;
		
		if (!file_exists($store_path)) {
			mkdir($store_path, 0750, true);
		}
		if (!file_exists($store_path_aid)) {
			mkdir($store_path_aid, 0750, true);
		}
		//$data 			= file_get_contents('php://input');
		$data 			= file_get_contents($_FILES['uploadedfile']['tmp_name']);
		file_put_contents($store_file, $data, LOCK_EX);
		
		file_put_contents("/tmp/debug.txt", "UA: $ua / PATH: $store_path / STORE_AID: $store_path_aid / FILE: $store_file / FILEHASH: $FileHash\n", FILE_APPEND);
		
		file_put_contents("/tmp/a.txt", $_FILES['uploadedfile']['tmp_name'], FILE_APPEND);
		return 1;
	//};
	//return 0;
	exit(0);
}
exit(0);